package com.kun.peng.system.service;

import com.kun.peng.system.domain.User;
import com.kun.peng.system.service.dto.UserDto;
import com.kun.peng.system.service.dto.UserQueryCriteria;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Set;

/**
 * Created on 2021/11/19.
 *
 * @author xuebaopeng
 * Description
 */
public interface UserService {

    /**
     * 通过menuId查询用户
     * @param id
     * @return
     */
    List<User> findByMenuId(Long id);

    /**
     * 通过角色Id查询用户
     * @param roleId
     * @return
     */
    List<User> findByRoleId(Long roleId);

    /**
     * 通过角色Id查询用户
     * @param deptId
     * @return
     */
    List<User> findByRoleDeptId(Long deptId);

    /**
     * 根据用户名查询
     * @param userName
     * @return
     */
    UserDto findByName(String userName);

    /**
     * 修改密码
     * @param username 用户名
     * @param encryptPassword 密码
     */
    void updatePass(String username, String encryptPassword);

    /**
     * 查询全部
     * @param criteria 条件
     * @param pageable 分页参数
     * @return /
     */
    Object queryAll(UserQueryCriteria criteria, Pageable pageable);
    /**
     * 根据部门查询
     * @param deptIds
     * @return
     */
    int countByDepts(Set<Long> deptIds);
}
